﻿using System;

namespace _116_可空类型_装箱和拆箱可空值
{
    class Program
    {
        static void Main(string[] args)
        {
            //如果T?是装箱的，那么堆中的装箱值包含的是T，而不是T？。这种优化方式是可以实现的，因为装箱值是一个可能已经赋值为空的引用类型。
            //C#允许通过as运算符对一个可空类型进行拆箱。如果强制转换出错，那么结果为null：
            object o = "string";
            int? x = o as int?;
            Console.WriteLine(x.HasValue); // 结果为假

            Console.ReadKey();
        }
    }
}
